package com.chainshop.procurement.service.impl;

import java.util.List;

import com.chainshop.common.core.domain.pojo.Stock;
import com.chainshop.common.utils.DateUtils;
import com.chainshop.procurement.domain.DaiPurchaseItem;
import com.chainshop.procurement.mapper.DaiPurchaseItemMapper;
import com.chainshop.procurement.service.IDaiPurchaseItemService;
import com.chainshop.product.domain.ProductVariants;
import com.chainshop.product.mapper.ProductVariantsMapper;
import com.chainshop.stock.mapper.StockMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;


/**
 * 待采购商品列Service业务层处理
 *
 * @author ruoyi
 * @date 2024-08-15
 */
@Service
public class DaiPurchaseItemServiceImpl implements IDaiPurchaseItemService
{
    @Autowired
    private DaiPurchaseItemMapper daiPurchaseItemMapper;
    @Autowired
    private ProductVariantsMapper productVariantsMapper;
    @Autowired
    private StockMapper stockMapper;
    /**
     * 查询待采购商品列
     *
     * @param id 待采购商品列主键
     * @return 待采购商品列
     */
    @Override
    public DaiPurchaseItem selectDaiPurchaseItemById(Long id)
    {
        return daiPurchaseItemMapper.selectDaiPurchaseItemById(id);
    }

    /**
     * 查询待采购商品列列表
     *
     * @param daiPurchaseItem 待采购商品列
     * @return 待采购商品列
     */
    @Override
    public List<DaiPurchaseItem> selectDaiPurchaseItemList(DaiPurchaseItem daiPurchaseItem)
    {
        return daiPurchaseItemMapper.selectDaiPurchaseItemList(daiPurchaseItem);
    }

    /**
     * 新增待采购商品列
     *
     * @param daiPurchaseItem 待采购商品列
     * @return 结果
     */
    @Override
    public int insertDaiPurchaseItem(DaiPurchaseItem daiPurchaseItem)
    {
        ProductVariants productVariants = productVariantsMapper.selectProductVariantsByVariantId(Long.valueOf(daiPurchaseItem.getProductVariantId()));
        Stock stock = stockMapper.selectStockByProductId(daiPurchaseItem.getProductVariantId());
        daiPurchaseItem.setUnit(productVariants.getUnit());
        daiPurchaseItem.setCreateTime(DateUtils.getNowDate());
        if(stock==null){
            System.out.println("该变种商品没有库存");
        }
        daiPurchaseItem.setCurrentQuantity(Long.valueOf(stock.getStockQty()));
        return daiPurchaseItemMapper.insertDaiPurchaseItem(daiPurchaseItem);
    }

    /**
     * 修改待采购商品列
     *
     * @param daiPurchaseItem 待采购商品列
     * @return 结果
     */
    @Override
    public int updateDaiPurchaseItem(DaiPurchaseItem daiPurchaseItem)
    {
        return daiPurchaseItemMapper.updateDaiPurchaseItem(daiPurchaseItem);
    }

    /**
     * 批量删除待采购商品列
     *
     * @param ids 需要删除的待采购商品列主键
     * @return 结果
     */
    @Override
    public int deleteDaiPurchaseItemByIds(Long[] ids)
    {
        return daiPurchaseItemMapper.deleteDaiPurchaseItemByIds(ids);
    }

    /**
     * 删除待采购商品列信息
     *
     * @param id 待采购商品列主键
     * @return 结果
     */
    @Override
    public int deleteDaiPurchaseItemById(Long id)
    {
        return daiPurchaseItemMapper.deleteDaiPurchaseItemById(id);
    }
}